14 research outputs found

    Towards a Time-predictable Dual-Issue Microprocessor: The Patmos Approach

    Get PDF
    Current processors are optimized for average case performance, often leading to a high worst-case execution time (WCET). Many architectural features that increase the average case performance are hard to be modeled for the WCET analysis. In this paper we present Patmos, a processor optimized for low WCET bounds rather than high average case performance. Patmos is a dual-issue, statically scheduled RISC processor. The instruction cache is organized as a method cache and the data cache is organized as a split cache in order to simplify the cache WCET analysis. To fill the dual-issue pipeline with enough useful instructions, Patmos relies on a customized compiler. The compiler also plays a central role in optimizing the application for the WCET instead of average case performance

    Programming Languages for Mobile Code

    No full text
    : Sun's announcement of the programming language Java more than anything popularized the notion of mobile code, that is, programs travelling on a heterogeneous network and automatically executes upon arrival at the destination. We describe several classes of mobile code and we extract their common characteristics, where security proves to be one of the major concerns. With these characteristics as reference points, we examine six representative languages proposed for mobile code. The conclusion of this study leads to our recommendations for future work, illustrated by examples of ongoing research. Key-words: mobile code, distribution, network programming, portability, safety, security, object orientation, formal methods, Java, Obliq, Limbo, Safe-Tcl, Objective Caml, Telescript. (R'esum'e : tsvp) CENTRE NATIONAL DE LA RECHERCHE SCIENTIFIQUE Centre National de la Recherche Scientifique Institut National de Recherche en Informatique (URA 227) Universit e de Rennes 1 -- Insa de Rennes et ..

    Programming Languages for Mobile Code

    Get PDF
    Sun's announcement of the programming language Java more than anything popularized the notion of mobile code, that is, programs travelling on a heterogeneous network and automatically executes upon arrival at the destination. We describe several classes of mobile code and we extract their common characteristics, where security proves to be one of the major concerns. With these characteristics as reference points, we examine six representative languages proposed for mobile code. The conclusion of this study leads to our recommendations for future work, illustrated by examples of ongoing research

    Programming Languages for Mobile Code

    No full text
    machine level: The Java Virtual Machine (JVM) is a language dependent abstract machine that is close enough to Java that its object code can be checked to respect the language semantics. In addition to these static (load-time) verifications, the JVM must implement dynamic checks to guarantee the safety of the language. These are bounds checking on array and string accesses, checking casts to a more specific type, invoking methods on null pointers, etc. The Java language, as described, is a modern `safe' language, guaranteeing that type and access rules are always respected. This in turn enables a low-level security policy to be expressed within the language itself. The visibility rules for classes and attributes play a crucial role to this respect. Indeed, the interface to local resources is provided by libraries, protected by the scope and visibility rules. Most resources requiring dynamic access control, such as the file system or access to the network, are controlled by a centralized security monitor, called the SecurityManager. The SecurityManager has an abstract type, which cannot be instantiated by an applet. All security related methods are declared final, so that applications and applets are forced to use the approapriate code. Without this protection, malicious applets could redefine the method in a subclass, potentially circumventing the security invariants. A final class enjoys even stronger protection, in that the inability to create subclasses also implies the inability to define new methods with access to protected attributes

    Programming languages for mobile code *

    No full text

    Embedded JIT Compilation with CACAO on YARI

    No full text
    Java is one of the most popular programming languages for the development of portable workstation and server applications available today. Because of its clean design and typesafety, it is also becoming attractive in the domain of embedded systems. Unfortunately, the dynamic features of the language and its rich class library cause considerable overhead in terms of runtime and memory consumption. Efficient techniques to implement Java virtual machines that are suitable for use in resource constrained environments are thus needed. In this work we present a solution for very restricted environments based on CACAO. CACAO is a just-intime compiling virtual machine implementation, combining high speed and small size. We have modified the original version of CACAO to run without an underlying operating system within only 1 MB of memory. In addition we present a new technique to selectively compile methods during the initialization phase of real-time Java applications to prevent unwanted interaction between dynamic compilation and critical tasks. Furthermore we present the YARI soft-core as the execution platform of CACAO within an field-programmable gate array. We compare our implementation with two well known Java processors, JOP and Sun’s picoJava-II, on the same technology. Although JOP achieves a higher clock frequency and picoJava-II occupies nearly 4 times the resource of YARI, our solution is capable to outperform both of them by a factor of up to 2.8 and 2.2 respectively.
    corecore